//package com.pattern.proxy.cgb;
//
//import java.lang.reflect.Method;
//import net.sf.cglib.proxy.InvocationHandler;
//import net.sf.cglib.proxy.Proxy;
//
// 代理模式使用cglib动态生成字节码实现
//public class ProxyServiceCglibImpl implements InvocationHandler {
//
//    private Object obj;
//
//    public ProxyServiceCglibImpl(Object obj) {
//        this.obj = obj;
//    }
//
//    public static Object newInstance(Object obj) {
//        Class<?> clazz = obj.getClass();
//        return Proxy.newProxyInstance(clazz.getClassLoader(), clazz.getInterfaces(), new ProxyServiceCglibImpl(obj));
//    }
//
//    @Override
//    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
//        log(args[0]);
//        Object result = method.invoke(obj, args);
//        log(result);
//        return result;
//    }
//
//    public void log(Object message) {
//        System.out.println("log:message=" + message);
//    }
//
//}